//
//  CZHomeViewController.swift
//  Swift -- 微博
//
//  Created by sks on 16/6/25.
//  Copyright © 2016年 mohaha. All rights reserved.
//

import UIKit

private let statusCellId = "statusCellId"

class CZHomeViewController: CZBaseViewController {
    

    
    // 定义保存微博数据的数组
    var statusArray:[CZStatus]?

    override func viewDidLoad() {
        super.viewDidLoad()

        if !isLogIn {
            
            visitorView.setupVisitorInfo(nil, title: nil)
            return
        }
        
        tableView.registerClass(CZStatusTableViewCell.self, forCellReuseIdentifier: statusCellId)
        // 指定tableViewCell 高度
        tableView.rowHeight = 300
        
        //请求数据
       loadStatusDate { (result) in
        self.statusArray = result
        // 刷新UI
        self.tableView.reloadData()
        }
    }

   
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return statusArray?.count ?? 0
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        //创建cell
          let cell = tableView.dequeueReusableCellWithIdentifier(statusCellId, forIndexPath: indexPath) as! CZStatusTableViewCell
        
        cell.stutus = statusArray![indexPath.row]
        
        return cell
    }

}


extension CZHomeViewController{

    func loadStatusDate(callBack:(result: [CZStatus])->()) {
     
        CZNetWorkTools.sharedTools.homeLoadStatusData({ (response) in
            // 判断我们请求回来数据是否有值 而且是否是一个数组
            guard let res = response?["statuses"] as?[[String: AnyObject]] else {
                print("返回数据为nil 或者 类型不匹配")
                return
            }
            // 定义一个临时数组
            var tempArray:[CZStatus] = [CZStatus]()
            // 遍历数组 完成字典转模型
            for dic in res {
                // 初始化模型
                let status = CZStatus(dict: dic)
                // 保存模型
                tempArray.append(status)
            }
            // 执行闭包
            callBack(result: tempArray)

            }) { (error) in
                print("失败:\(error)")
        }
    }


}
